package org.fing.edu.uy.esbadp.core.constants;

/*
 * Almacena la clave de la lista de metadata que se agregaran a los servicios
 * esta informacion sera la que utilizan las estrategias pre cargados en el proyecto.
 * En caso de que se extiendan y se agreguen nuevas estrategias la metadata no estaran registradas aqui ya que seran definidas externamente.
 * 
 */
public class EsbAdpServiceMetadataKeys {
	
	
	/**
	 * @NOT REQUIRED
	 * Determina si un servicio es de datos o de negocio.
	 * Valores permitidos  "true" | "false"
	 */
	public static final String dataService="dataService";
	public static final String dataServiceDefaultValue = "false"; 
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el ttl del cache si esta esta activo
	 * Valor debera representar un entero positivo
	 */
	public static final String dataCacheTTL = "dataCacheTTL";
	public static final String dataCacheTTLDefaultValue = String.valueOf(1000);
		
	
	/**
	 * @NOT REQUIRED
	 * Determina el ttidle del cache si este esta activo
	 * Valor debera representar un entero positivo
	 */
	public static final String dataCacheTTIDLE = "dataCacheTTIDLE";
	public static final String dataCacheTTIDLEDefaultValue = String.valueOf(1000);
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el tiempo de respuesta soportado para el servicio
	 * Valor debera representar un entero positivo
	 */
	public static final String responseTimeLimit = "responseTimeLimit";
	public static final String responseTimeLimitDefaultValue = String.valueOf(Integer.MAX_VALUE);
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el limite del porcentaje de respuestas exitosas para el servicio
	 * Valor debera representar un porcentaje (0-100 )
	 */
	public static final String successInvocationRateLimit = "successInvocationRateLimit";
	public static final String successInvocationRateLimitDefaultValue = String.valueOf(0);
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el limite del la cantidad de pedidos por unidad del tiempo al que soporta el servicio
	 * Valor debera representar un entero
	 */
	public static final String invocationsQuantityPerUnitTimeLimit = "invocationsQuantityPerUnitTimeLimit";
	public static final String invocationsQuantityPerUnitTimeLimitDefaultValue = String.valueOf(Integer.MAX_VALUE);
	

	/**
	 * @NOT REQUIRED
	 * Determina el delay que utilizara la estrategia delay
	 * Valor debera representar un entero positivo
	 */
	public static final String dataDelayTime = "dataDelayTime";
	public static final String dataDelayTimeDefaultValue = String.valueOf(200);
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el valor por defecto para los campos numericos de un servicio
	 * Valor debera ser un numerico
	 */
	public static final String newNumericValue = "newNumericValue";
	public static final String newNumericValueDefaultValue =  String.valueOf(0);
	
	
	/**
	 * @NOT REQUIRED
	 * Determina el valor por defecto para los campos string de un servicio
	 * Valor debera ser un string
	 */
	public static final String newStringValue = "newStringValue";
	public static final String newStringValueDefaultValue =  "";
	
	
}
